home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 January - Disc 2
/
Macworld (1999-01) (Disk 2).dmg
/
Serious Demos
/
Symbolic Composer 4.2
/
Environment
/
Projects
/
Contributed Scores
/
Peter Stone Punctus
/
Overtones
< prev
next >
Wrap
Lisp/Scheme
|
1998-10-26
|
3KB
|
78 lines
(setq p1 '(a b c d e f g h i j k l m n o p q r s t))
(setq p2 (gen-random 0.5 20 '(a b c d e f g h i j)))
(setq p3 (gen-random 0.51 20 '(a b c d e f g h i j)))
(setq p4 '(a b c d e f g h i j k l m n o p q r s t))
(defun pick-nth (start step l)
(let (out)
(for i start step (length l) nil
(if (nth i l) (push (nth i l) out)))
(nreverse out)))
(setq p1 '(a b c d e f g h i j k l m n o p q r s t))
(setq p2 (append (pick-nth 0 2 p1) (pick-nth 1 2 p1)))
(setq p3 (append (pick-nth 0 2 p2) (pick-nth 1 2 p2)))
(setq p4 '(a b c d e f g h i j k l m n o p q r s t))
(setq p1 '(a b c d e f g h i j k l m n o p q r s t))
(setq p2 (gen-random 0.5 20 '(a b c d e f g h i j)))
(setq p3 (reverse p1))
(setq p4 (reverse p2))
(setq p1-p2 (symbol-interpolate 8 p1 p2))
(setq p2-p3 (symbol-interpolate 8 p2 p3))
(setq p3-p4 (symbol-interpolate 8 p3 p4))
(setq melody (flatten (symbol-repeat 2 (append p1-p2 (cdr p2-p3) (cdr p3-p4)))))
(create-tonality test '(1/1 2/1 3/1 4/1 5/1 6/1 7/1 8/1 9/1 10/1 11/1 12/1 13/1 14/1 15/1 16/1 17/1 18/1 19/1 20/1))
(create-tonality test2 '(1/1 3/1 5/1 7/1 9/1 11/1 13/1 15/1 17/1 19/1
21/1 23/1 25/1 27/1 29/1 31/1 33/1 35/1 37/1))
;; panning
(setq freq 9) (setq samples 1024)
(setq modulator (vector-mix (gen-ramp 0.4 0.1 samples)
(gen-sin 50 0.01 samples)))
(setq pan1
(vector-modulate (gen-sin freq 0.5 samples)
modulator))
(setq pan2
(vector-modulate (gen-sin freq 0.5 samples 90)
modulator))
(setq zonelen (* (get-tick '1/16) (length melody)))
; note: realisation depends on the tuning resolution of the synth that
; you play the piece, change the tuning resolution accordingly
(def-section sect-a
default
zone (list (/ zonelen 2) (/ zonelen 2))
motive (def-motive theme
length '(1/16)
symbol melody
velocity (vector-to-list (vector-round 60 90 (gen-sin 3 1 32))))
piano1
channel 1
tonality (activate-tonality (test c 4 4024) (test2 c 3 4024))
motive theme
controller (mu80-controllers
panning (list (vector-to-list (vector-round 1 126 pan1))))
piano2
channel 2
tonality (activate-tonality (test c 4 4024) (test2 c 3 4024))
motive (rev theme)
controller (mu80-controllers
panning (list (vector-to-list (vector-round 30 100 pan2))))
)
(def-tempo 80)
(play-file-p nil
piano1 '(sect-a)
piano2 '(sect-a)
)